﻿using System;
using System.Collections;
using System.Linq;
using System.Text;
using GestionadorBaseDatos;

namespace CRUD.InterfaceDAO
{
    /// <summary>
    /// Interface que define el comportamiento de la clase Usuario
    /// </summary>
    public interface IDaoUsuario: IGenericDAO<Usuario,int>
    {
            /// <summary>
            /// Actualiza los datos de un usuario
            /// </summary>
            /// <param name="u">Objeto de tipo Usuario</param>
            void Update(Usuario u);
       
        /// <summary>
        /// Obtienes todos los usuarios
        /// </summary>
        /// <returns>Retorna una lista generica de objetos</returns>
        IList GetAll();
        
        /// <summary>
        /// Inserta un nuevo usuario
        /// </summary>
        /// <param name="crear">Objeto de tipo Usuario</param>
        void Insert(Usuario crear);
        
        /// <summary>
        /// Obtiene un usuario dado su nickname y su password. Este metodo es para el incio de sesion
        /// </summary>
        /// <param name="nickname">Tipo de dato String que seria el nickname</param>
        /// <param name="password">Tipo de dato string que seria el password</param>
        /// <returns>etorna una lista generica de objetos</returns>
        IList GetByPasswordAndUser(string nickname, string password);
        
        /// <summary>
        /// Obtiene un usuario dado su nickname
        /// </summary>
        /// <param name="Nickname">Tipo de dato string que seria el nickname</param>
        /// <returns>Retorna un objeto de tipo Usuario</returns>
        Usuario GetByNickname(string Nickname);


    }
}
